package main

import (
	"fmt"
	"os"
	"os/signal"
)

func main() {
	//Notify 使包信号将传入信号中继到 c。 如果没有提供信号，所有传入的信号将被中继到 c。 否则，只有提供的信号才会。
	//
	//包信号不会阻塞发送到 c：调用者必须确保 c 有足够的缓冲区空间来跟上预期的信号速率。 对于仅用于通知一个信号值的通道，大小为 1 的缓冲区就足够了。
	//
	//允许使用同一个通道多次调用 Notify：每次调用都会扩展发送到该通道的信号集。 从集合中删除信号的唯一方法是调用 Stop。
	//
	//允许使用不同的通道和相同的信号多次调用 Notify：每个通道独立接收传入信号的副本。
	c := make(chan os.Signal, 1)
	//signal.Notify(c, os.Interrupt, os.Kill)
	signal.Notify(c)

	s := <-c
	fmt.Println("当前信号量:", s)
}
